#!/bin/bash

# 配置参数
DOMAIN="hijuconn.com"
CA_KEY="ca.key"
CA_CRT="ca.crt"
SERVER_KEY="server.key"
SERVER_CSR="server.csr"
SERVER_CRT="server.crt"
DAYS=2  # 证书有效期（10年）

# 1. 生成自签名 CA 证书
echo "生成 CA 私钥（传统 RSA 格式）..."
openssl genrsa -out $CA_KEY 2048  # 默认生成 PKCS#8 格式，需转换为传统格式
openssl rsa -in $CA_KEY -out $CA_KEY  # 转换为 BEGIN RSA PRIVATE KEY 格式

echo "生成 CA 自签名证书..."
openssl req -new -x509 -days $DAYS -key $CA_KEY -out $CA_CRT -subj \
  "/C=CN/ST=ShanDong/L=Qingdao/O=Hisense/OU=OVCloud/CN=*.hijuconn.com"

# 2. 生成服务器证书
echo "生成服务器私钥（传统 RSA 格式）..."
openssl genrsa -out $SERVER_KEY 2048
openssl rsa -in $SERVER_KEY -out $SERVER_KEY  # 确保格式正确

echo "生成证书签名请求（CSR）..."
openssl req -new -key $SERVER_KEY -out $SERVER_CSR -subj \
  "/C=CN/ST=ShanDong/L=Qingdao/O=Hisense/OU=OVCloud/CN=*.hijuconn.com"

echo "使用 CA 签发服务器证书..."
openssl x509 -req -days 3650 -in $SERVER_CSR -CA $CA_CRT -CAkey $CA_KEY -CAcreateserial -out $SERVER_CRT -sha256

# 3. 合并证书与私钥（可选）
echo "合并证书和私钥为 PEM 文件..."
cat $SERVER_CRT $SERVER_KEY > server.pem

# 4. 验证私钥格式
echo "验证私钥格式..."
openssl rsa -in $SERVER_KEY -check -noout

echo "操作完成！文件已生成："
echo "CA 证书: $CA_CRT"
echo "服务器证书: $SERVER_CRT"
echo "服务器私钥: $SERVER_KEY"